<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
    <head>
        <title>Project API</title>
    </head>
    <body>
        <p>
            Project API/SPI for <b>project</b> and <b>workspaces</b> manipulation.
        </p>
        <p>
            The API defines <code>Project</code> and <code>Workspace</code>
            interface. Most of modules will use these interfaces to watch
            the application lifecycle. The <code>ProjectController</code> service manage
            the system. A <code>ProjectListener</code> interface can be used to track project events.
        </p>
        <p>
            The SPI notably defines how modules can interact with the workspace lifecycle. The most common need is for
            a module to attach a unique model to each workspace. The best way to do that is to implement a
            <code>Controller</code> service. This controller will be called when a new workspace is created. The alternative
            way is to implement a <code>WorkspaceListener</code> service to listen to the project lifecycle.
        </p>
        <p>
            See <code>WorkspacePersistenceProvider</code> for project saving/loading.
        </p>
    </body>
</html>